TDR cable testing apparatus with pulse timing manipulation to automatically compensate for diverse cable characteristics

ABSTRACT

A cable tester, which is adapted to be used by persons not expertly skilled in the technical characteristics of local area networks (LANs), is disclosed. The tester incorporates a time domain reflectometer which starts a counter upon the generation of an incident signal pulse and utilizes a comparator which compares signals present on a cable under test to a controllable amplitude to halt the timer. The tester exhibits an output impedance which is greater than the impedance of a cable being tested. The tester additionally measures instantaneous amplitude levels of signals present on the cable being tested, resistance, continuity, noise levels, and data activity on a network of which the cable is a part. In addition, the tester includes a display and a sound generally device. Software programming compensates for impedance mismatches with the cable and data present on an active network being tested. In addition, software programming processes test and measurement results for visual presentation on the display and for audible presentation on the sound generating device. The visual presentations incorporate graphical representations of test and measurement data. Furthermore, the tester supplies audible signals which can be used with the aid of a tracter device to locate the cable being tested.

TECHNICAL FIELD OF THE INVENTION

The present invention relates generally to devices employed in the testing of electrical cables which are commonly utilized in local area networks (LANs). More specifically, the present invention relates to such devices which, at least in part, utilize the technology of time domain reflectometry (TDR) and which process TDR and other data for convenient presentation to a user of the device.

BACKGROUND OF THE INVENTION

Local area networks (LANs), which couple separately located computers together, have become a common feature in today's workplace. A LAN cable, which physically spans the distances between computers and includes connectors and terminators installed thereon, serves a key role in the LAN. However, failures in a LAN cable can occur during installation, during modifications to the computer network, and when furniture, computer, or office space relocations occur.

Typically, even LAN cable failures which completely halt LAN operations can be difficult to identify and isolate. However, LAN cables experience many other failure or problem modes which are extremely difficult to identify because they lead to a degradation in performance rather than a complete halting of LAN operations. Skilled engineers and technicians can and do utilize a variety of currently available test equipment to troubleshoot such LAN failures and problems. However, today's workplace is often staffed by persons who, while highly skilled in various technical areas, do not possess the types of skills or equipment required to fully understand and identify the many complex electrical parameters which characterize a LAN.

Consequently, the troubleshooting of a LAN, even when a relatively simple problem is suspected, requires the services of such LAN-skilled persons using the appropriate test equipment. Many managers in the workplace dislike obtaining the services of such LAN-skilled persons because of the excessive computer down-time which may result from waiting for such persons to arrive and because of the large fees such persons demand.

Accordingly, the successful troubleshooting of common LAN failures by an internal LAN user would be a highly desirable alternative to obtaining the services of outside LAN-skilled persons. Unfortunately, the test equipment currently utilized in troubleshooting LAN problems assumes a large familiarity with the complex electrical parameters that characterize a LAN. Consequently, such test equipment fails to meet the troubleshooting needs of the typical LAN user. For example, such equipment typically includes sophisticated time domain reflectometry (TDR) circuits which require an equipment operator to enter a significant amount of data in order to perform a TDR scan of a cable under test. Specifically, an operator is typically required to characterize a nominal velocity of propagation (NVP) and an impedance of the cable under test. While the entry of such data presents no obstacle to a typical LAN-skilled person, the entry of such data is highly undesirable to the typical LAN user who does not readily know such data and may not fully appreciate the significance of such data to TDR.

In addition, such conventional equipment requires a user to enter a desired pulse width for use in connection with TDR scans. While this pulse width selection is readily understood and appreciated by the typical LAN-skilled person, the typical LAN user may not fully appreciate its significance in TDR and may have trouble in making an appropriate choice.

Conventional LAN testing equipment fails to serve the typical LAN user's needs in other areas. For example, such conventional equipment fails to include functions for performing simple continuity checks, for electrical interference testing, for locating cables which may be hidden in ceilings, walls, under carpets, etc., and for performing other common tests required in a typical computerized workplace, such as serial data port testing. Moreover, such conventional equipment typically presents information in a cryptic manner which requires a significant amount of interpretation on the part of an equipment operator. Furthermore, such conventional equipment often performs TDR scans slowly so that such conventional equipment cannot operate simultaneously with operation of the LAN. Still further, such conventional equipment fails to permit the saving of test data for later analysis or for later presentation to a LAN-skilled person.

In addition, such conventional equipment often assumes the availability of additional "test" equipment, such as chart recorders, oscilloscopes, VOM's, and the like. However, the typical LAN user may not readily possess such additional "test" equipment. Furthermore, such conventional equipment, especially when associated with supporting "test" equipment, often costs so much that a typical LAN user cannot afford to purchase it for emergency and occasional use only.

Thus, a need exists for cable testing equipment which addresses the needs of the typical LAN user.

SUMMARY OF THE INVENTION

Accordingly, it is an advantage of the present invention that a cable testing apparatus and method which are particularly suited for the typical LAN user are provided.

Another advantage is that the present invention provides a time domain reflectometer which refrains from requiring a user to specify the types of parameters which are typically unknown to the user.

Still another advantage is that the present invention presents data to a user in numeric, graphical, and audible forms so that a user is required to engage in a minimum amount of data interpretation.

Yet another advantage is that the present invention includes a plurality of diverse functions so that a user need not obtain additional "test" equipment to successfully troubleshoot a wide variety of common LAN problems.

The above and other advantages of the present invention are carried out in one form by a cable testing device which includes a port for coupling to a cable under test. A time domain reflectometer couples to the port to transmit an incident pulse of a selectable width and to monitor signals at the port. A circuit, which automatically specifies a width for the incident pulse in response to the signals monitored at the port, couples to the time domain reflectometer.

The above and other advantages of the present invention are carried out in another form by a cable testing device which couples to a cable that exhibits a predetermined characteristic impedance. The cable testing device includes a time domain reflectometer which has an output that couples to the cable. The time domain reflectometer output exhibits a characteristic impedance which is greater than the predetermined characteristic impedance.

The above and other advantages of the present invention are carried out in yet another form by a method of performing time domain reflectometry at a port which is intended to couple to a cable under test. The method first measures a substantially instantaneous amplitude of signals present at the port. Subsequent to this measurement, the method transmits an incident signal pulse at the port and starts a timer substantially simultaneous with the transmission of the incident signal pulse. The method additionally monitors the signals present at the port and compares the amplitudes of these signals with a comparison amplitude that exceeds the instantaneous amplitude discussed above. Upon the detection at the port of a signal which exhibits an amplitude that exceeds the comparison amplitude, the method stops the timer to produce a timed duration.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention may be derived by referring to the detailed description and claims when considered in connection with the FIGURES, wherein like reference numbers refer to similar items throughout the FIGURES, and:

FIG. 1 shows an external, perspective view of the present invention;

FIG. 2A shows a block diagram of a controller portion of hardware circuits included in the present invention;

FIG. 2B shows a block diagram of a cable interface portion of hardware circuits included in the present invention;

FIG. 3 shows a schematic diagram of a cable driver portion of the present invention;

FIG. 4 is a flow chart which illustrates the types of tasks performed by the present invention during an Idle mode of operation;

FIGS. 5A and 5B together provide a flow chart which illustrates the types of tasks performed by the present invention during a Scan Cable function;

FIG. 6 is a flow chart which illustrates the types of tasks performed by the present invention during Successive Approximation routines;

FIG. 7 is a flow chart which illustrates the types of tasks performed by the present invention during a routine which Tests for Close Shorts;

FIG. 8 is a flow chart which illustrates the types of tasks performed by the present invention during a Print function;

FIG. 9 is a flow chart which illustrates the types of tasks performed by the present invention during Resistance and Continuity functions;

FIG. 10 is a flow chart which illustrates the types of tasks performed by the present invention during a Scope function;

FIG. 11 is a flow chart which illustrates the types of tasks performed by the present invention during a Noise Level function;

FIG. 12 is a flow chart which illustrates the types of tasks performed by the present invention during a Printer function;

FIG. 13 is a flow chart which illustrates the types of tasks performed by the present invention during a Data Library function;

FIG. 14 is a flow chart which illustrates the types of tasks performed by the present invention during a Calibration function;

FIG. 15 is a flow chart which illustrates the types of tasks performed by the present invention during a Tracer macro;

FIG. 16 shows a block diagram of a tracer device utilized in connection with the Tracer macro;

FIG. 17 is a flow chart which illustrates the types of tasks performed by the present invention during a Monitor macro;

FIG. 18 is a flow chart which illustrates the types of tasks performed by the present invention during an Amplitude Display macro;

FIG. 19 is a flow chart which illustrates the types of tasks performed by the present invention during a Noise Level macro;

FIG. 20 is a flow chart which illustrates the types of tasks performed by the present invention during a Units macro;

FIG. 21 is a flow chart which illustrates the types of tasks performed by the present invention during a Print Configuration macro; and

FIG. 22 is a flow chart which illustrates the types of tasks performed by the present invention during a Define Macro Preset macro.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a hand-held cable tester 10 in accordance with the preferred embodiment of the present invention. Tester 10 resides in a box-like housing which measures approximately 1"×4"×7.5" and weighs approximately 2 pounds. A top surface of tester 10 includes a keyboard 12. Keyboard 12 is configured in an array having 12 keys, labeled keys 12.0-12.9 for the numerals 0-9, 12.c for "Clear," and 12.e for "Enter." In addition, the top surface of tester 10 includes a display 13, which provides a user of tester 10 with a visual indication of data in a 16 character by 2 line array.

Sides of tester 10 include a plurality of connectors and a power switch 14. A user of tester 10 manipulates power switch 14 to energize and de-energize tester 10. A cable port 15 in the form of a BNC connector and a test connector 17 reside on one side of tester 10. Port 15 is intended to connect to a cable under test (CUT) 18 through a suitable adaptor or mating BNC connector 20. Connector 17 electrically couples in parallel to port 15 for electrically connecting twisted pair cables, oscilloscopes, or other test equipment to CUT 18 at tester 10. In the preferred embodiment, CUT 18 represents any electrical cable, and more preferably represents any electrical cable used in a local area network (LAN).

Another side of tester 10 includes a serial data port 19 for allowing tester 10 to communicate with a printer, a computer, or other computer-controlled device (not shown) using standardized data communication signals, such as those utilized in an RS-232 data communications link. In addition, this side of tester 10 includes a connector 21 for coupling an electrical power source to tester 10 for charging batteries contained within tester 10 and for energizing tester 10.

FIGS. 2A and 2B show a block diagram of circuits utilized by tester 10. Generally, these circuits reside in either a controller section 22 (shown in FIG. 2A) or a cable interface section 23 (shown in FIG. 2B). As shown in FIG. 2A, controller 22 includes a conventional 8-bit microprocessor 24, such as an HD64180, manufactured by the Hitachi Corporation. This particular microprocessor 24 includes an internal universal asynchronous receiver/transmitter (UART) 25, a high-speed serial port 27, and a timer 28. Each of UART 25, serial port 27, and timer 28 utilize an interrupt structure to communicate with a processor portion 29 of microprocessor 24. Of course, those skilled in the art will recognize that the present invention can alternatively employ any one of a wide variety of alternate 4-bit, 8-bit, 16-bit, 32-bit, and the like microprocessor products which may or may not include such internal UART, timer, and serial port functions.

In the preferred embodiment, UART 25 couples through a driver circuit 30 to serial data port 19, discussed above in connection with FIG. 1. The preferred embodiment of the present invention engages in RS-232 serial data communication through UART 25 and driver 30 using conventional techniques. Such communication represents a widely accepted communication standard for computer devices. Consequently, hard-copy printouts of test results are provided utilizing such computer devices. The use of computer devices for hard-copy, rather than specialized test equipment, such as chart recorders, is advantageous because such equipment is readily available in an environment where a LAN operates. Consequently, a user of tester 10 need not purchase additional equipment to obtain hard-copy printouts of test results.

High speed serial port 27 provides an output from microprocessor 24 which couples to a conventional piezoelectric buzzer 32. Consequently, tester 10 provides audible indications of data through the emission of "beeps" by buzzer 32. Specifically, such "beeps" are produced by loading data containing alternating 1's and 0's, (i.e. AAH or 55H) into high speed serial port 27, then controlling the rate at which such data is clocked out of port 27 to define the tone of the "beep." Port 27 generates an interrupt to processor 29 when it has completed clocking its data out from microprocessor 24, and processor 29 reloads such data into port 27 in response to this interrupt. Such reloading continues for the desired duration of a beep.

A data, address, and control bus 33 couples microprocessor 24 to a random access memory (RAM) 34 and a programmable read only memory (PROM) 35. In addition, bus 33 couples to keyboard 12 and display 13, which were discussed above in connection with FIG. 1. Microprocessor 24 communicates with RAM 34, PROM 35, keyboard 12, and display 13 utilizing conventional techniques, which employ address decoding and appropriate manipulation of microprocessor control signals (not shown).

In the preferred embodiment, RAM 34 is a conventional volatile RAM. Controller 22 utilizes RAM 34 to store variables, test data, and other parameters which change due to the operation of tester 10. A power input terminal of RAM 34 couples through a diode 37 to a Vcc terminal 38. Terminal 38 is adapted to receive a positive voltage only when tester 10 has been energized through the operation of power switch 14 (see FIG. 1). In addition, the power input terminal of RAM 34 couples through a series-connected diode 39 and resistor 40 to a positive terminal of a battery 42. A negative terminal of battery 42 couples to a ground terminal 43. Consequently, RAM 34 employs a battery powered back-up scheme. When tester 10 is de-energized, battery 42 continues to supply current to RAM 34 so that data stored therein is not lost. Of course, the alternative use of non-volatile RAM circuits to maintain data integrity when tester 10 has been de-energized is equally within the scope of the present invention.

Controller 22 utilizes PROM 34 to store software programming instructions, tables, constant data, and other data which does not change through the operation of tester 10. Such instructions, tables, and the like are discussed below in connection with the flow charts of FIGS. 4-22.

Keyboard 12 and display 13 each communicate with microprocessor 24 in a conventional manner. Thus, in the preferred embodiment, a background mode of operation for microprocessor 24, initiated by an interrupt generated every 20 milliseconds by timer 28, examines keyboard 12 to determine which, if any, of keys 12.0-12.9, 12.c, and 12.e (see FIG. 1) have been depressed. Data describing a depressed key is then placed in a buffer for use by a foreground mode of operation.

Microprocessor 24 writes either control data or display data to display 13. The control data clears the display, indicates where on display 13 subsequent data shall be written, and performs other control functions. Each byte of display data forms a code, such as the well-known ASCII code, which display 13 formats as a character or symbol for display thereat.

Controller 22 interfaces to cable interface 23 (FIG. 2B) through a controller interface 44. Interface 44 includes a plurality of latches 45 and buffers 47, which couple to bus 33 in a conventional manner. Microprocessor 24 writes control bits of data, which configure and initiate the operation of cable interface 23, into latches 45. Conversely, microprocessor 24 reads test result data produced by cable interface 23 at buffers 47.

As shown in FIG. 2B, controller interface 44 supplies a short pulse control bit at a line 48 to an input of a pulse generator 49. Pulse generator 49 produces a 15---20 nanosecond logic low pulse at an output thereof in response to a low-to-high transition of the short pulse control bit. The precise pulse width is not a critical parameter. Such a pulse may be produced by splitting the input short pulse control bit into two signal paths having unequal propagation delays associated therewith, then gating the two unequally delayed signal paths together to produce the output signal. However, the present invention contemplates the use of delay lines or other circuits to produce this 15-20 nanosecond pulse.

The output of pulse generator 49 couples to a preset input of a D-type flip-flop 50 and to a first input of a NAND gate 52. Controller interface 44 supplies a long pulse control bit at a line 51, which couples to a second input of NAND gate 52. An output of NAND gate 52 couples to an input of an inverting cable driver circuit 53, the details of which are discussed below in connection with FIG. 3. An output of cable driver 53 AC couples through a series-connected capacitor 54 to a first signal port of a switching device or relay 55, and to a first signal port of a switching device or relay 57. A second signal port of relay 55 couples to a signal terminal 58 of port 15. In addition, the present invention contemplates the use of protection circuits (not shown) between relay 55 and terminal 58.

With further reference to the circuits depicted in FIG. 2B, controller interface 44 supplies a ready/audio control bit at a line 59 to an input of an audio signal driver 60, and to clock inputs of flip-flop 50 and a D-type flip-flop 62. "D" inputs of flip-flops 50 and 62 couple to a terminal which is adapted to supply a constant logical low signal. An output of audio signal driver 60 AC couples through a capacitor 63 to a second signal port of relay 55 and to a first signal input of a bridge circuit 64. A second signal input of bridge circuit 64 couples to ground terminal 43. Bridge circuit 64 is a conventional resistive bridge, in which the first and second signal inputs of bridge circuit 64 form one leg of the bridge. In addition, the preferred embodiment of bridge circuit 64 amplifies the output signal from the resistive bridge in an operational amplifier (not shown). An output of this operational amplifier serves as an output of bridge circuit 64 and couples to a second signal port of relay 57. In addition, bridge circuit 64 may advantageously incorporate filtering and temperature stabilization circuits so that a stable output is provided therefrom.

A third signal port of relay 57 couples to a non-inverting input of a comparator 65. A slope control bit presented at line 66 couples controller interface 44 to a slope control input of comparator 65. An output of a conventional 8-bit digital-to-analog (D/A) converter 67 couples to a negative input of comparator 65. An 8-bit data input of D/A converter 67 couples to eight control output bits from controller interface 44. A positive slope output of comparator 65 couples to a first input of a NAND gate 68 and to controller interface 44 so that it may be read by microprocessor 24. Likewise, a negative slope output of comparator 65 couples to a second input of NAND gate 68 and to controller interface 44. The preferred embodiment implements comparator 65 using a conventional dual-slope comparator, such as an LM361, manufactured by the National Semiconductor Corporation. However, those skilled in the art will understand that other similar devices or two single-output comparators may be configured to serve the functions performed by comparator 65 in the present invention.

Controller interface 44 additionally supplies a first relay control bit at a line 69 and a second relay control bit at a line 70. Line 69 couples to control inputs of relays 55 and 57, and line 70 couples to a control input of a switching device or relay 71. Of course, the present invention additionally contemplates the use of driving circuits (not shown) between the control inputs of relays 55, 57, and 71 and controller interface 44. Relays 55 and 57 are configured so that when the first relay control bit is in a first logical state, relay 55 electrically connects its first and second signal ports together while relay 57 electrically connects its first and third signal ports together, as shown in FIG. 2B. When the first relay control bit exhibits a second logical state, both of relays 55 and 57 connect their respective second and third signal ports together.

A first signal port of relay 71 couples to a reference terminal 72 of port 15. When CUT 18 is a coaxial cable, reference terminal 72 typically couples to a shield of CUT 18 while signal terminal 58 couples to a center conductor of CUT 18. A second signal port of relay 71 is left open, and a third signal port of relay 71 couples to ground terminal 43. Thus, relay 71 is configured so that when the second relay control bit is in a first logical state, the first and third signal ports thereof connect together. However, when the second relay control bit is in a second logical state, the first signal port of relay 71 is open, causing the shield of CUT 18 to become isolated from ground 43 of tester 10.

With further reference to the circuits depicted in cable interface 23 of tester 10, an output of NAND gate 68 couples to a first input of a NAND gate 73. A non-inverting output of flip-flop 62 couples to a second input of NAND gate 73, and an output of NAND gate 73 couples to a clear input of flip-flop 50. A non-inverting output of flip-flop 50 couples to a first input of a NAND gate 74 and to controller interface 44 so that it may be read by microprocessor 24. An oscillator 75, which operates at a frequency of around 100 MHz in the preferred embodiment, has an output which couples to a second input of NAND gate 74. An output of NAND gate 74 couples to a clock input of a counter circuit 77.

In the preferred embodiment of the present invention, counter 77 simply counts the 100 MHz clock signal produced by oscillator 75, when enabled to do so. The least significant bit of counter 77 is supplied from a flip-flop (not shown) which latches the phase of the clock signal as counter 77 is stopped, or disabled. Thus, counter 77 exhibits sufficient timing precision to enable tester 10 to resolve the location of opens or shorts in CUT 18 to within two feet. In addition, counter 77 is configured so that the less significant bits are implemented using high-speed logic circuits, such as Advanced Schottky devices, to accommodate the high frequency of the clock signal. On the other hand, the more significant bits of counter 77 are generated by low-power consuming circuits, such as CMOS devices, to minimize current drain on battery 42, which powers tester 10.

Counter 77 couples its 15-bit output to controller interface 44 so that the count values generated by counter 77 may be read by microprocessor 24. In addition, controller interface 44 supplies a clear counter control bit at a line 78 that couples to counter 77. Thus, microprocessor 24 initializes counter 77 to a known count, such as zero, prior to the enablement of counter 77 by activating the clear counter control bit. Two of the counter output bits (the fourth and seventh from the least significant side of the counter output) couple to first and second data inputs of a four-to-one multiplexer 79. A third data input of multiplexer 79 couples to a terminal adapted to supply a constant logical low signal, and a fourth data input of multiplexer 79 couples to a terminal adapted to supply a constant logical high signal. Controller interface 44 supplies first and second mux-selection control bits at lines 80a and 80b, collectively referred to as lines 80, which couple to first and second selection inputs, respectively, of multiplexer 79. An inverted output of multiplexer 79 couples to a preset input of flip-flop 62. Consequently, microprocessor 24 controls the mux-selection control bits to route a logical low, logical high, or one of the data output bits from counter 77 to the preset input of flip-flop 62.

Further description of the circuits within tester 10 and of their modes of operation is generally provided below in connection with various software routines which control the operation of such modes. However, FIG. 3 depicts specific circuits included in cable driver 53 which are discussed in detail here. Specifically, the input of cable driver 53 couples through a parallel-coupled combination of a resistor 53a and a capacitor 53b to a base of an NPN transistor 53c. A collector of transistor 53c couples through a biasing resistor 53d to terminal 38, which supplies Vcc as discussed above. An emitter of transistor 53c couples through a parallel-coupled combination of a biasing resistor 53e and an AC shorting capacitor 53f to ground terminal 43. The collector of transistor 53c additionally couples to an emitter of an NPN transistor 53g. A base of transistor 53g couples through a parallel-coupled combination of a biasing resistor 53h and an AC shorting capacitor 53i to ground terminal 43. In addition, the base of transistor 53g couples through a biasing resistor 53j to Vcc terminal 38. Finally, a collector of transistor 53g serves as the output of cable driver 53 and couples through a resistor 53k to Vcc terminal 38.

Resistor 53a and capacitor 53b together form a lead filter which serves to quicken a rising edge of a pulse being transmitted through cable driver 53. Transistor 53c and its associated biasing resistors operate as a first amplification stage for cable driver 53, and transistor 53g and its associated biasing resistors operate as a cascode amplifier at the output of cable driver 53. Consequently, the output of cable driver 53 presents a relatively high impedance to CUT 18 (see FIG. 2B). Since transistor 53g presents a high impedance, the impedance presented to CUT 18 is largely influenced by the value of resistor 53k, which is around 330 ohms in the preferred embodiment.

This high impedance output provides many advantages for the present invention. For example, the high impedance output nature of cable driver 53 minimizes the amount of energy from port 15 which propagates backwards into cable driver 53 from its output. Consequently, cable driver 53 tends to remain stable, without ringing or oscillation. In addition, the high impedance nature of cable driver 53 means that the output impedance of tester 10 need not match the impedance of CUT 18. In fact, this output impedance is higher than the characteristic impedances of typical LAN CUT's, which are generally around 150 ohms or less. Thus, an operator of tester 10 is not required to enter data describing such impedance of CUT 18. The absence of a need to enter the impedance of CUT 18 is particularly desirable because a user of tester 10 may not possess such data.

FIG. 4 depicts a flow chart which illustrates the types of tasks performed by tester 10, under the control of microprocessor 24, during an Idle mode 82 of operation. Idle mode 82 is a foreground mode of operation which occurs when tester 10 is powered-up but not in the process of performing any specific test, function, or macro. As discussed above, during a background mode of operation, microprocessor 24 monitors keyboard 12 (see FIGS. 1-2A) to identify keys as they are pressed and to place a key identifier in a buffer. Idle mode 82, examines this buffer when the pressing of a key has been detected to determine which of keys 12.0-12.9, 12.c, and 12.e (see FlG. 1) has been pressed, as indicated in a task 83. If keys 12.0-12.9 are pressed, program control remains in Idle mode 82. However, if task 83 determines that either the Clear key (key 12.c) or the Enter key (key 12.e) has been pressed, then additional processing results.

When task 83 detects the Clear key (key 12.c), the selection of a Cable Type is being requested, and a task 84 then causes display 17 to instruct the user of tester 10 to enter a number describing the physical characteristics of CUT 18.

The selection of a cable type identifies a nominal velocity of propagation (NVP), which is a well known parameter to those skilled in the art of time domain reflectometry (TDR), for use in making TDR calculations. Printed matter associated with keys 12.1-12.6, and 12.8 identifies common LAN cable types, such as "ETHERNET," "ARCNET," "TOKEN RING," and the like. Printed matter associated with key 12.7 names two physical cable substances (i.e. teflon ("TFE") and poly vinyl chloride ("PVC")) which influence the NVP parameter of the named cable types. If task 84 determines that key 12.7 has been pressed, then a task 85 toggles a variable defining the cable substance from TFE to PVC, or vice-versa, and program control returns to Idle mode 82.

If task 84 determines that one of keys 12.1-12.6, and 12.8 have been pressed, then a task 87 moves an NVP parameter, selected from a table, to a workspace for use in subsequent TDR calculations. After task 87, program control returns to Idle mode 82. Table 1, shown below, contains NVP parameters in association with cable substances and LAN cable types, as used by task 87. Consequently, the use of keys 12.1-12.8 provide the NVP's defined by Table 1.

                  TABLE 1                                                          ______________________________________                                         KEY       LAN CABLE TYPE   TFE    PVC                                          ______________________________________                                         12.1      Ethernet (Thin)  70     67                                           12.2      Ethernet (Thick) 77     77                                           12.3      ARCnet           84     84                                           12.4      Twisted Pair     67     67                                           12.5      TV Cable         84     78                                           12.6      Token Ring       78     78                                           12.8      Terminal Coax    84     84                                           ______________________________________                                    

Task 84 may determine that key 12.9 was pressed. In this situation, a task 88 causes display 13 to instruct the user to enter a number (0-9) corresponding to a selected User Type. Task 88 then retrieves the entered number. The User Type represents a variable either preset from the factory or set by the user to contain a predetermined NVP. Thus, the user may simply select an NVP from an assortment of predetermined NVP's rather than in accordance with specific cable types, as discussed above in connection with task 87. The presetting of a User Type by the user is discussed below in connection with a Calibration function. A task 89, performed after task 88, moves a specified User Type variable from a User Type table (not shown) to the workspace. After task 89, program control returns to Idle mode 82.

In addition, task 84 may determine that key 12.0 was pressed. The pressing of key 12.0 causes a task 90 to obtain a macro variable, and use the value contained in the macro variable as an index which specifies a macro. Next, in a task 92, tester 10 proceeds to perform the specified macro. Macros, including a macro for setting the macro variable, are discussed below. However, generally speaking, the performance of a macro using key 12.0 at task 84 allows a user to use fewer keystrokes in instructing tester 10 to perform the specified macro than would otherwise be required.

Referring back to task 83, the initial key pressed in Idle mode 82 may have been the enter key (key 12.e). When task 83 determines that key 12.e was pressed, a task 93 causes display 13 (see FIG. 1) to instruct the user to press yet another key, collects data describing the pressed key, and switches program control to a routine for the function which was indicated by the pressed key. Each of keys 12.0-12.9, 12.c, and 12.e contain printed matter thereon to indicate a particular function or test which will be performed when that key is pressed. If task 93 decides that the clear key (key 12.c) was pressed, then program control returns to Idle mode 82. However, if keys 12.0-12.9 are pressed, then program control proceeds to the function indicated in Table 2, shown below.

                  TABLE 2                                                          ______________________________________                                         Key       Function Name                                                                              Function Number                                          ______________________________________                                         12.1      Scan Cable  100                                                      12.2      Print       200                                                      12.3      Resistance  300                                                      12.4      Scope       400                                                      12.5      Noise Level 500                                                      12.6      Continuity  600                                                      12.7      Printer     700                                                      12.8      Data Library                                                                               800                                                      12.9      Macro       900                                                      12.0      Calibration 1000                                                     ______________________________________                                    

Functions 100-800 and 1000 are discussed below in connection with FIGS. 5-14. However if task 93 detects the selection of Macro function 900, then program control transfers to a task 902, which operates similarly to task 93, discussed above. Specifically, task 902 causes display 13 to instruct the user to press another key, collects data describing the pressed key, and switches program control to a routine for the macro which was indicated by the pressed key. If task 902 determines that one of keys 12.1-12.7 was pressed, then program control switches to the macro specified in accordance with Table 3, shown below.

                  TABLE 3                                                          ______________________________________                                         Key       Macro Name     Macro Number                                          ______________________________________                                         12.1      Tracer         910                                                   12.2      Monitor        920                                                   12.3      Amplitude Display                                                                             930                                                   12.4      Noise Level    940                                                   12.5      Units          950                                                   12.6      Print Configuration                                                                           960                                                   12.7      Define Macro Preset                                                                           970                                                   ______________________________________                                    

Macros 910-970 are discussed below in connection with FIGS. 15-22. On the other hand, if task 902 determines that the clear key (key 12.c) was pressed then program control returns to Idle Mode 82, and if task 902 determines that one of keys 12.8, 12.9, or 12.0 was pressed, then program control returns to Idle Mode 82 after first causing display 13 to instruct the user that no macro has been implemented for the selected key. In addition, tester 10 may advantageously emit an audible "beep" to inform the user that tester 10 is ignoring the previous selection.

FIGS. 5A and 5B together depict the types of tasks performed by tester 10 during Scan Cable function 100. Function 100 provides the time domain reflectometry (TDR) function of tester 10. Referring briefly back to FIG. 2B, tester 10 performs TDR by causing an incident electrical pulse to be generated and transmitted through cable driver 53 and relay 55 for transmission into CUT 18. Simultaneously, counter 77 begins counting cycles of the clock signal supplied by oscillator 75. This incident pulse propagates away from tester 10 along CUT 18 until it encounters an impedance discontinuity or impedance mismatch. The discontinuity causes at least a portion of the energy in the electrical pulse to be reflected back toward tester 10 as a reflection pulse. The greater the impedance mismatch, the greater the reflection pulse amplitude. Thus, opens and shorts, which represent two common failure modes, produce large amplitude reflection pulses.

The non-inverting input of comparator 65 monitors port 15 through relays 55 and 57 in order to detect the reflected pulse. The inverting input of comparator 65 couples to a controllable comparison amplitude supplied by D/A converter 67. Controller 22 establishes this comparison amplitude so that comparator 65 will be most likely to "trip" when a reflection pulse is detected. When comparator 65 trips, flip-flop 50 disables counter 77 so that the count existing therein is frozen, and controller 22 subsequently reads this count. Thus, counter 77 operates as a timer which measures the period of time transpiring between the transmission of the incident pulse and the receipt of the reflection pulse. The NVP parameter characterizes the speed of propagation of the incident and reflected pulses along CUT 18. Accordingly, controller 22 then calculates the distance to the discontinuity using the time indicated by counter 77 and the NVP.

Moreover, the reflected pulse exhibits a polarity opposite of the incident pulse polarity when the impedance discontinuity is less than the characteristic impedance of CUT 18, such as occurs with a short, and the reflected pulse exhibits the same polarity as the incident pulse when the impedance discontinuity is greater than the characteristic impedance of CUT 18, such as occurs with an open. Thus, opens may be distinguished from shorts by monitoring the polarity of the reflected pulse.

Referring to FIG. 5A, one of the first tasks performed during Scan Cable function 100 is a Successive Approximation routine 102, which establishes an amplitude floor for use in setting the comparison amplitude applied from D/A converter 67 to comparator 65 (see FIG. 2B).

FIG. 6 illustrates Successive Approximation routine 102 in detail. Generally, tester 10 performs successive approximation routines in several of the functions and macros. These successive approximation routines are similar to one another, although each successive approximation differs from the others in minor details. Consequently, the flow chart of FIG. 6 generically illustrates the types of tasks performed by all of these routines.

Tester 10 performs a task 104 upon entry to Successive Approximation routine 102. Task 104 causes a threshold value to be written to D/A converter 67 (see FIG. 2B). For a first iteration through a successive approximation loop, this threshold value is approximately one-half of full scale for D/A converter 67. After task 104, a task 106 enables counter 77 so that counter 77 begins counting.

Referring back to FIG. 2B, counter 77 may be enabled either with or without simultaneous generation of an incident signal pulse at port 15. The preferred embodiment enables counter 77 by first clocking the ready/audio control bit at line 59 to clear flip-flops 50 and 62, then changing the state of the short pulse control bit at line 48 from a low to a high. The incident signal pulse is generated by placing the long pulse control bit at line 51 in a high state while operating the short pulse control bit, and the incident signal pulse is prevented from being generated when the long pulse control bit is in a low state while operating the short pulse control bit.

After task 106 (see FIG. 6), an optional task 108 causes program control to wait before proceeding to a task 110. In task 110, controller 22 (see FIG. 2A) examines cable interface 23 to see if counter 77 has been disabled since the prior enablement of task 106. This examination is accomplished by reading the output from flip-flop 50 which couples to controller interface 44.

While counter 77 counts, comparator 65 monitors the signals present at port 15 and trips when it detects an amplitude peak at port 15 which exceeds the comparison amplitude generated by D/A converter 67. Of course, such an amplitude peak may be of a positive or negative nature, and comparator 65 can be controlled, through the operation of the slope control bit at line 66, to trip on positive-going or negative-going signals. Thus, those skilled in the art will understand that, for the purposes of the preferred embodiment illustrated by FIG. 2B the exceeding of the comparison amplitude occurs if, during a positive slope comparison, an input signal exhibits a greater positive amplitude than a positive comparison amplitude or a less negative amplitude than a negative comparison amplitude. In addition, the exceeding of the comparison amplitude occurs if, during a negative slope comparison, an input signal exhibits a less positive amplitude than a positive comparison amplitude or a more negative amplitude than a negative comparison amplitude.

When task 110 (see FIG. 6) detects that comparator 65 has tripped and stopped counter 77, a task 112 increases the threshold from the previous threshold used during task 104. Specifically, the amount of increase is one-half of the previous step, which was one-half of full scale during the first iteration of the successive approximation loop. Thus, task 112 increases the threshold by one-fourth of full scale during the first iteration of the successive approximation loop, by one-eighth during the second iteration, and so on. Conversely, when task 110 detects that comparator 65 has failed to trip and stop counter 77, a task 114 decreases the threshold from the previous threshold used during task 104. Task 114 decreases the threshold by one-fourth of full scale during the first iteration, by one-eighth during the second iteration, and so on.

After either of tasks 112 or 114, program control transfers to a task 116, which inquires whether to end the successive approximation loop or repeat the loop at task 104. In the preferred embodiment, D/A converter 67 receives an 8-bit data input, and therefore task 116 ends the successive approximation loop after 8 iterations. At the end of 8 iterations, the threshold value obtained during the last iteration approximates the peak amplitude detected during execution of Successive Approximation routine 102.

As discussed above, comparator 65 operates in positive slope and negative slope modes. Thus, when task 116 detects the end of the successive approximation loop, a task 118 optionally repeats the above-discussed successive approximation loop (tasks 104-116) to obtain a peak amplitude for the opposing slope mode of comparator 65. After task 118, program control continues with the function or macro which utilizes Successive Approximation routine 102.

Referring back to FIG. 5A, Successive Approximation routine 102 is executed therein without generating an incident signal pulse from tester 10 and without waiting during task 108 of FIG. 6. Moreover, task 102 in FIG. 5A performs both positive and negative slope successive approximation loops to obtain positive and negative peak amplitudes of signals present at port 15. Since task 102 in FIG. 5A does not wait during task 108 (see FIG. 6), the peak amplitude levels detected during task 102 represent substantially instantaneous peak amplitude measurements. Moreover, since task 102 in FIG. 5A refrains from generating an incident signal pulse, the peak amplitude levels detected during task 102 do not include influences from incident or reflected pulses but instead represent the then-current amplitudes of noise and data signals present on CUT 18.

After task 102 in FIG. 5A, a task 120 sets a baseline comparison amplitude by adding predetermined offsets to the peak amplitudes detected in task 102. In the preferred embodiment of the present invention, these predetermined offsets are around ±100 millivolts. Thus, task 120 establishes a positive comparison amplitude, which is approximately 100 millivolts greater than the positive peak amplitude measured in task 102, and a negative comparison amplitude, which is approximately 100 millivolts more negative than the negative peak amplitude measured in task 102.

A task 122, which is performed after task 120, sets a pulse width variable to specify a short pulse width. Subsequent tasks in Scan Cable function 100 use this pulse width variable to control the operation of cable interface 23 (see FIG. 2B) so that a relatively short width incident signal pulse will be generated by tester 10.

Referring back to FIG. 2B, a low-to-high transition on the short pulse control bit at line 48 while the long pulse control bit at line 51 exhibits a high level produces the relatively short width incident pulse, which is approximately 15-25 nanoseconds in the preferred embodiment. The width of this pulse is controlled by pulse generator 49. On the other hand, a high-to-low transition of the long pulse control bit generates the relatively wide incident pulse, which is approximately 300-400 nanoseconds in the preferred embodiment. The value of capacitor 54, which is around 0.1 microfarad in the preferred embodiment, causes the trailing edge of the wide incident pulse to occur approximately 300-400 nanoseconds after its leading edge.

With continued reference to FIG. 5A, after the short pulse width specification in task 122, a routine 124 tests for potential shorts in CUT 18 near tester 10. FIG. 7 illustrates details of routine 124. Specifically, routine 124 includes a task 126, which controls the operation of multiplexer 79 (see FIG. 2B) so that counter 77 may be disabled in the event that comparator 65 trips within a predetermined short period of time after being enabled. In the preferred embodiment, this period of time is set at approximately 65 nanoseconds so that shorts which may exist at 25 or fewer feet from tester 10 in CUT 18 may be detected. Thus, the selection control bits at lines 80 are set so that multiplexer 79 holds flip-flop 62 in a constantly preset state.

After task 126, a task 128 performs a scan on CUT 18 with the aim of detecting a reflection pulse from a short in CUT 18. The scanning of CUT 18 occurs by initializing counter 77, as discussed above in connection with FIG. 6, generating an incident pulse exhibiting a pulse width specified in the pulse width variable, discussed above, and then testing the output of flip-flop 50 to detect whether comparator 65 has tripped and stopped counter 77. The preferred embodiment generates a negative-going pulse at port 15 for the incident pulse. Thus, the scanning of CUT 18 for a short condition additionally requires the setting of the slope control bit input to comparator 65 so that comparator 65 trips on positive-going signals at port 15. Moreover, the scanning of CUT 18 for a short condition requires the writing of the positive baseline amplitude, discussed above in connection with task 120 (see FIG. 5A), into D/A converter 67 to set the level at which comparator 65 trips.

After task 128 (see FIG. 7), a task 130 resets multiplexer 79 so that such "quick trips" will not disable counter 77 in future scans of CUT 18. Task 130 sets the selection inputs to multiplexer 79 to an initialized state that accommodates a "normal" scan with a short width incident pulse. Specifically, task 130 controls multiplexer 79 to route the least significant one of the two counter output bits input to multiplexer 79 to the preset input of flip-flop 62.

A task 132, performed after task 130, inquires whether the quick trip occurred. This inquiry is performed by first examining the output from flip-flop 50 to see if comparator 65 has tripped and stopped counter 77. If comparator 65 has not tripped, then the quick trip has not occurred, and program control returns to Scan Cable function 100. On the other hand, if comparator 65 has tripped, then task 132 examines the output from counter 77 to detect whether the trip occurred within the predetermined short period of time, discussed above. If a trip occurs within the predetermined short period of time, then task 132 routes program control to a task 134. Otherwise, program control returns to Scan Cable function 100.

Assuming that task 132 determines that a quick trip occurred, then task 134 repeats tasks 126-130 for approximately 100 iterations, and a task 136 then averages the scan results from the quick trips of these 100 iterations to generate an average duration for the quick trips. The large number of iterations are preformed due to the relatively low probability of detecting such shorts in any single scan. Thus, reliability in detecting such shorts improves.

After task 136, a task 138, shown in FIG. 5B, performs arithmetic calculations which translate the average count obtained from the prior scans into a number which represents the distance to the detected fault. The present invention displays this distance in either feet or meters, depending on the contents of a units variable, which is discussed below in connection with macro 950. In addition, task 138 updates the workspace and displays this distance number at display 13 (see FIGS. 1-2A) along with an appropriate legend to indicate the nature of the number, such as "SHORT at *** FEET."

Next, a task 140 inquires whether the Scan Cable function has ended. In the preferred embodiment, this inquiry examines the buffer which the background mode utilizes to communicate the occurrence of activity at keyboard 12 (see FIGS. 1-2A) to the foreground mode. Thus, a user of tester 10 causes tester 10 to exit Scan Cable function 100 by pressing a key on keyboard 12. If task 140 decides that Scan Cable function 100 should end, program control transfers to Idle mode 82. Otherwise, program control remains within Scan Cable function 100 by looping back to the beginning of Scan Cable function 100.

Referring back to FIG. 5A, when the test for close shorts routine 124 decides that no quick trips occurred in task 132, discussed above in connection with FIG. 7, program control returns to Scan Cable function 100 at a task 142. Task 142 scans CUT 18 with the aim of detecting a short in CUT 18. Thus, this scan of CUT 18 is similar to the scan of CUT 18 discussed above in connection with task 128 (see FIG. 7). However, task 142 waits a sufficient length of time to permit a reflection from a fault at a distance of approximately 10,000 feet to trip comparator 65 (see FIG. 2). In addition, task 142 operates with the selection controls of multiplexer 79 set to hold the output of flip-flop 62 at a low level until counter 77 progresses to a predetermined count so that the tripping of comparator 65 prior to the occurrence of this predetermined count will not disable counter 77. Thus, task 142 scans CUT 18 for faults at a distance greater than the distance for which faults were scanned in task 128.

The prevention of quick trips in task 142 is not a critical feature of the present invention because a reflection pulse from a short in CUT 18 exhibits a polarity opposite to the polarity of the incident pulse. Consequently, the incident pulse itself will not cause comparator 65 to trip when comparator 65 is set to look for a reflection pulse from a short. However, a task 144, which occurs after task 142, scans CUT 18 with the aim of detecting an open in CUT 18. For an open condition the reflection pulse exhibits the same polarity as the incident pulse. Thus, task 144 sets comparator 65 to trip on a negative-going signal in the preferred embodiment. The selection controls of multiplexer 79 (see FIG. 2B) are again set to hold the output of flip-flop 62 at a low level until counter 77 progresses to the predetermined count so that the tripping of comparator 65 prior to the occurrence of this predetermined count will not disable counter 77. This feature prevents the incident pulse itself from disabling counter 77. In other words, tester 10 will not permit detection of the incident pulse itself to be interpreted as an open fault in CUT 18 at a distance near to tester 10.

Next, a task 146 examines the scan results from tasks 142 and 144. Such scan results include data describing whether a tripping of comparator 65 disabled counter 77 and the count achieved by counter 77 if it was disabled. Task 146 routes program control to perform three different actions depending upon the inquiry of task 146.

If task 146 decides that counter 77 did not become disabled in either of the short or open scans of tasks 142 and 144, respectively, then a task 148 examines the pulse width variable, discussed above, to determine whether the scans of tasks 142 and 144 were performed with the short or wide incident pulse. If such scans were performed with the short pulse, attenuation characteristics of CUT 18 could possibly have diminished the amplitude of a legitimate reflection pulse sufficiently so that comparator 65 did not trip. Consequently, tester 10 repeats the open and short scans of CUT 18 using an incident pulse having a greater amount of energy than is contained in the short incident pulse to compensate for such potential attenuation.

Specifically, the pulse width variable is set to the wide pulse in a task 150, and program control returns to task 142 again. Another iteration of tasks 142, 144, and 146 is performed substantially as described above, except that the incident pulse generated by tester 10 now exhibits the wide pulse width. In addition, as a consequence of the wide pulse mode of operation, the selection inputs of multiplexer 79 are now set to route the most significant one of the two counter output bits input to multiplexer 79 to the preset input of flip-flop 62. This selection at multiplexer 79 extends the predetermined period of time during which the disabling of counter 77 is prevented.

If counter 77 does not become disabled in either of the short or open scans of tasks 142 and 144 during the wide pulse mode of operation, task 148 routes program control to a task 152. Task 152 causes display 13 (see FIGS. 1-2A) to indicate that no faults were found in CUT 18 by displaying a message such as "NO FAULTS FOUND." After task 152, program control proceeds to task 140, discussed above and shown in FIG. 5B, to exit or repeat Scan Cable function 100.

On the other hand, if the scan results from only one (not both) of the short and open scans of tasks 142 and 144 detect a fault, then task 146 routes program control to a task 154. Task 154 sets a short/open mode variable to control the slope of comparator 65 in subsequent scans so that comparator 65 will operate in the selected mode. Specifically, if only the short scan of task 142 detected the disabling of counter 77, then task 154 sets the short/open mode variable to indicate a short mode of operation. Likewise, if only the open scan of task 144 detected the disabling of counter 77, then task 154 sets the short/open mode variable to indicate an open mode of operation.

Alternatively, if the scan results from both of the short and open scans of tasks 142 and 144 detect a fault, then task 146 routes program control to a task 156. Task 156 sets the short/open mode variable in accordance with the closest one of the detected faults. Specifically, task 156 examines the final counts obtained by counter 77 when disabled in tasks 142 and 144. If the count from task 142 is less than the count from task 144 then task 156 sets the short/open mode variable to indicate the short mode of operation. Likewise, if the count from task 144 is less than the count from task 142, then task 156 sets the short/open mode variable to indicate the open mode of operation.

After either of tasks 154 or 156, a task 158 initializes a baseline duration variable. During an initial iteration of Scan Cable function 100, the baseline duration variable is set equal to the final count obtained by counter 77 in the selected one of the previous short and open scans of tasks 142 and 144. The short/open variable indicates the selected one of the previous scans. In subsequent iterations of Scan Cable function 100, the results obtained in a previous iteration are utilized to initialize the baseline duration variable.

Next, a task 160 compares the baseline duration variable against a predetermined switch point. In the preferred embodiment of the present invention, this switch point occurs at a count which represents a period of time approximately equal to 750 nanoseconds. When this switch point is exceeded by the baseline duration variable, a task 162 sets the pulse width variable, discussed above, to the wide pulse. Thus, when a detected fault in CUT 18 occurs at a distance of around 250 feet or more away from tester 10, tester 10 automatically selects the wide pulse mode of operation for improved reliability, accuracy, and precision in test results reported by tester 10.

After task 162 or when task 160 fails to determine that the above-discussed switch point has been exceeded by the baseline duration variable, a task 164, shown in FIG. 5B, sets an accumulator to an initial value, such as zero. Thus, task 164 initializes a scan loop, which Scan Cable function 100 performs next.

A task 166 of this scan loop scans CUT 18 utilizing the pulse width defined by the pulse width variable. In addition, task 166 controls the slope of comparator 65 in accordance with the short/open mode variable. After the scan of task 166, a task 168 inquires whether the results from the scan are within a predetermined tolerance of the baseline duration variable. The preferred embodiment of the present invention uses a range equal to the baseline duration ±10% for this tolerance. So long as scan results remain within this tolerance, tester 10 remains in the scan loop by performing a task 170, which adds the scan results to the accumulator.

After task 170, a task 172 examines the number of iterations performed in the scan loop to determine whether the scan loop should now end. The preferred embodiment permits a maximum of 30 iterations before ending the scan loop. However, this maximum number is not a critical parameter in the present invention so long as it remains substantially greater than three. This number is chosen in the preferred embodiment primarily to simplify the 8-bit arithmetic performed by microprocessor 24 (see FIG. 2A).

So long as the maximum number of iterations of the scan loop has not yet been reached, tester 10 remains in the scan loop by proceeding from task 172 to a task 174. Task 174 waits a predetermined period of time so that reflections present on CUT 18 may dissipate. As discussed above in connection with FIG. 3, the output impedance of tester 10 does not match the characteristic impedance of CUT 18. Consequently, reflected pulses which encounter port 15 of tester 10 are reflected at port 15 back into CUT 18. As a result, CUT 18 may experience the influence of an incident pulse generated by tester 18 for a considerable duration while the pulse reflects back and forth between a fault in CUT 18 and port 15 of tester 10. However, only a portion of the energy of an incident or reflected pulse reflects at a fault or at port 15, and the pulse eventually attenuates or dissipates. Task 174 causes the scan loop to time a subsequent scan of CUT 18 so that CUT 18 no longer experiences a significant influence from a previous scan of CUT 18. Of course, those skilled in the art will recognize that the effects of task 174 may be built into any portion of the scan loop, and that task 174 takes into account the time required for tester 10 to perform tasks 168, 170, and 172, which tasks occur after a scan of CUT 18. After task 174, the scan loop repeats at task 166.

Either of inquiry tasks 168 or 172 may cause the scan loop to end. Task 168 ends the scan loop when out-of-tolerance scan results are detected. Task 172 ends the scan loop when the maximum number of iterations for the scan loop have been reached. When the scan loop ends, a task 176 calculates an average duration from the sum of scan results contained in the accumulator and from tee number of iterations actually performed by the scan loop. In addition, task 176 adds a predetermined offset value to this average duration, which is in the range of ±10 counts of counter 77 for the preferred embodiment. This offset compensates for any mismatch in the propagation delay of cable interface 23 (see FIG. 2B) between the signal path which generates the incident signal pulse transmitted at port 15 and the signal path which enables counting by counter 77. Consequently, accuracy improves in describing a distance, which tester 10 calculates and reports in subsequent steps, to a fault in CUT 18.

After task 176, a task 178 saves the average calculated above in task 176 for use in updating the baseline duration variable in a subsequent performance of task 158, discussed above. Consequently, a subsequent iteration of the Scan Cable function utilizes the average count obtained from a prior iteration of the Scan Cable function as the new baseline duration.

Next, tester 10 performs a task 180, which inquires whether tester 10 is currently operating in a mode in which the amplitude of the reflected pulse is displayed. This inquiry examines an amplitude display variable, which is set in accordance with the procedure specified in macro 930, discussed below. When this mode of operation is specified, a task 182 performs a successive approximation routine similar to the one discussed above in connection with task 102 and illustrated in FIG. 6. For task 182, the successive approximation routine performs a scan of CUT 18 while performing the successive approximation. However, in task 182 the successive approximation does not add wait states so that the routine executes as quickly as possible. In addition, the successive approximation performs only a single successive approximation loop in accordance with the state of the short/open mode variable. Consequently, the successive approximation results obtained in task 182 represent the peak value of the reflection pulse monitored by tester 10.

After task 182, a task 184 translates the successive approximation results from task 182 into parameters which define a bar graph. This bar graph is displayed in task 138, discussed above, which tester 10 performs after task 182. In the preferred embodiment, the lower line of display 13 (see FIGS. 1-2A) displays this bar graph. The bar graph is configured so that display 13 shows 16 ">" characters when a maximum amplitude reflected pulse is detected by task 182, and a no ">" characters (i.e. a blank line) when task 182 detects a minimal amplitude reflected pulse. Of course, the number of ">" characters displayed varies in accordance with the relationship between an actual reflected pulse amplitude and the above-discussed extremes. Consequently, tester 10 provides a user with a graphical indication of the transmission quality of CUT 18. A larger displayed bar indicates a lower-attenuation, better quality medium for the transmission of electrical signals. On the other hand, a smaller displayed bar indicates a higher-attenuation cable which is more easily influenced by external noise in a given set of circumstances. Moreover, the use of a graphical indicator frees the user from interpreting attenuation data which might otherwise be presented using numerals.

As discussed above, task 138 translates count data into distances, updates the workspace, and controls display 13 in accordance with the previously performed iteration of Scan Cable function 100. Task 138 is performed after task 184 or after task 180, when the reflected pulse amplitude display mode of operation is not enabled. After task 138, program control proceeds to task 140 to decide whether to repeat or exit Scan Cable function 100.

As discussed above in connection with FIG. 4, a user of tester 10 may instruct tester 10 to perform any one of several functions and macros, of which Scan Cable function 100 represents only one. Print function 200 represents another function, and FIG. 8 presents a flow chart which illustrates the types of tasks performed by tester 10 during Print function 200. Print function 200 outputs data stored within tester 10 so that such data may be printed, displayed, or stored at a computer device, such as a printer or personal computer, placed in data communication with tester 10 at serial port 19 (see FIGS. 1-2A).

With reference to FIG. 8, in a task 202, tester 10 outputs a series of data bytes, coded in accordance with the ASCII standard, which serve as a header string for data subsequently output. This header string represents constant data which identifies tester 10 and the operational data which will be subsequently output. In addition the header string may advantageously include column titles, units of measurement, scale identifiers, and the like, to aid in interpreting the subsequently output data.

After task 202, a task 204 formats the test data contained in the workspace for output. In addition, task 204 may advantageously include header or legend information to make the test data easily readable. Moreover, the formatting additionally contemplates the translation of numerical data into an appropriate graphical format so that the output, when printed or displayed, provides a graphical indication of test data.

Next, a task 206 outputs the data formatted during task 204, and a task 208 repeats the formatting and outputting tasks 202-206 until all data in the workspace has been transmitted at serial port 19. After task 208, program control returns to Idle mode 82.

FIG. 9 presents a flow chart which illustrates the types of tasks performed by tester 10 during Resistance function 300 and during Continuity function 600. Functions 300 and 600 both perform a resistance measurement of CUT 18 or of a terminator (not shown) and display the results of the measurement. Of course, those skilled in the art understand that resistance and continuity provide inverse characterizations of a single electrical parameter. Thus, Resistance function 300 has many features which are similar to the features of Continuity function 600. Accordingly, functions 300 and 600 are discussed together herein.

As shown in FIG. 9, a task 302 controls the state of the first relay control bit at line 69 (see FIG. 2B) so that relay 55 couples port 15 to the input of bridge circuit 64 and so that relay 57 couples the output of bridge circuit 64 to the non-inverting input of comparator 65. As a result, bridge circuit 64 monitors CUT 18, and comparator 65 monitors the output of bridge circuit 64 rather than port 15.

After task 302, a task 304 causes tester 10 to wait a predetermined period of time before proceeding to a task 306. This wait allows relays 55 and 57 and bridge circuit 64 to stabilize. In task 306, tester 10 performs a successive approximation routine, similar to Successive Approximation routine 102, discussed above and illustrated in FIG. 6. During task 306, the successive approximation routine does not simultaneously allow an incident pulse to be transmitted from tester 10, nor does task 306 wait appreciable amounts of time during the successive approximation loop. Furthermore, task 306 performs only a single iteration of the successive approximation loop over the full scale of D/A converter 67. As a result of this successive approximation routine, task 306 obtains an 8-bit number representing a voltage amplitude at which the output from D/A converter 67 approximates the voltage output from bridge circuit 64. This number is proportional to the resistance monitored by bridge circuit 64 in a manner well-known to those skilled in the art.

Next, a task 308 repeats the successive approximation routine of task 306 until a total of 10 successive approximation iterations have occurred. After task 308, a task 310 averages the results from the 10 successive approximation iterations to obtain a single, reliable number which is proportional to the measured resistance.

The procedures followed by tester 10 during Resistance function 300 and Continuity function 600 differ after task 310 depending on whether Resistance function 300 or Continuity function 600 is being performed. After task 310 during Resistance function 300, a task 312 translates the number obtained in task 310 into a numerical resistance value, updates the workspace so that the resistance value may be included with other test data, and operates display 13 to display an appropriate legend along with the resulting resistance number. Bridge circuit 64 in the preferred embodiment is configured so that this resistance number is less than 25 ohms.

After task 310 during Continuity function 600, a task 612 updates the workspace and translates the average number obtained during task 310 into parameters which describe a bar graph. The preferred embodiment translates a resistance value of around zero ohms into a bar graph having 16 ">" characters and translates a resistance value of around 25 ohms into a blank display, or a bar graph having no ">" characters. Resistance values between 0 and 25 ohms produce a bar graph having 16 or fewer ">" characters, the precise number of which is proportional to the resistance in accordance with the above-discussed extremes. Task 612 then displays this bar graph at display 13.

Tester 10 additionally emits an audible indication of continuity during Continuity function 600 in accordance with parameters established during task 612. Specifically, task 612 establishes parameters for the operation of buzzer 32 (see FIG. 2A) so that a constant tone results from a resistance of around 12 ohms or less and silence results from a resistance of around 23 ohms or more. In addition, the present invention saves past measured values and compares current resistance measurements against such past values. When a reduction in resistance to a value less than 23 ohms is detected, task 612 establishes parameters so that buzzer 32 will emit a single "beep."

This audible indication of continuity is advantageous because a user of tester 10 may wiggle connectors, terminators, or CUT 18 itself while listening to the audible indications supplied by tester 10. The user need not look at display 13 to learn the measured resistance or continuity value, and the user need not interpret whether a given value is acceptable or unacceptable. Rather, the user need only arrange CUT 18, including connectors and terminators coupled thereto, while listening for tester 10 to "beep."

After tasks 312 or 612, a task 314 inquires whether the function should end or repeat. In the preferred embodiment, the function continually repeats until a user of tester 10 presses any key, in a manner similar to that discussed above in connection with task 140 (see FIG. 5B). When task 314 does not detect the end of the function, the function repeats at task 306. On the other hand, when task 314 encounters the end-of-function event, a task 316 controls the state of the first relay control bit at line 69 (see FIG. 2B) so that relays 55 and 57 return to an initialized state wherein tester 10 is set-up for Scan Cable function 100. After task 316, program control returns to Idle mode 82.

FIG. 10 presents a flow chart which illustrates the types of tasks performed by tester 10 during Scope function 400. Generally, during Scope function 400 tester 10 continually generates incident signal pulses at port 15 without processing data related to monitoring reflected pulses. A LAN-skilled person may then connect an oscilloscope to CUT 18 using connector 17 (see FIG. 1) and view incident and reflection signal timing, amplitudes, and shapes on an oscilloscope.

As shown in FIG. 10, a task 402 causes display 13 to instruct the user to press a key on keypad 12 (see FIG. 1) and thereby select a pulse width which tester 10 will use during Scope function 400. The instructions may, for example, instruct the user to press key 1 for a short pulse or key 2 for a wide pulse. Task 402 waits for the user's response, then proceeds to a task 404, which sets the pulse width variable, discussed above, in accordance with the selection made in task 402.

After task 404, a task 406 causes tester 10 to transmit at port 15 an incident pulse having the width specified by the pulse width variable. This task differs from the scan cable tasks discussed above n connection with Scan Cable function 100 because tester 10 pays no attention to whether comparator 65 trips or whether counter 77 becomes disabled as a result of reflections from the incident pulse.

Next, a task 408 inquires whether to end Scope function 400. As discussed above, the preferred embodiment accomplishes this inquiry by detecting whether any key has been pressed. If task 408 determines that Scope function 400 should now end, program control simply transfers back to Idle mode 82. However, if task 408 determines that Scope function 400 should continue, a task 410 next waits a predetermined period of time before repeating a scope loop by returning program control to task 406. In the preferred embodiment, 50 microseconds transpires between successive incident pulses. Consequently, task 410 waits a sufficient period of time so that the next incident pulse occurs around 50 microseconds after the previous incident pulse.

FIG. 11 presents a flow chart which illustrates the types of tasks performed by tester 10 during a Noise Level function 500. Noise Level function 500 generally detects a peak-to-peak noise level present at port 15, and reports the measured noise level to the user of tester 10. Moreover, Noise Level function 500 reports the measured noise level both visually and audibly.

Referring to FIG. 11, a task 502 performs a successive approximation routine which is similar to the successive approximation routine discussed above in connection with task 102 and illustrated in FIG. 6. For task 502 the successive approximation does not allow tester 10 to generate an incident signal pulse. However, for task 502, the successive approximation routine operates slowly, as discussed above in connection with task 108 (see FIG. 6). Specifically, task 502 causes each iteration of the successive approximation loop to require on the order of 15-25 milliseconds. This 15-25 millisecond period is sufficiently long so that substantially a full cycle, including the peaks thereof, of a 50-60 Hz noise signal may be experienced at port 15. Accordingly, the slowness of task 502 allows tester 10 to detect a common and pervasive type of noise which is caused by public power distribution lines. In addition, task 502 performs both positive and negative iterations of the successive approximation loop so that task 502 obtains positive and negative amplitude values which correspond to the signals present at port 15.

After task 502, a task 504 translates the amplitude values obtained during task 502 into a form suitable for output to display 13, and causes display 13 to visually indicate the measured peak-to-peak noise level. This visual display takes the form of a number which describes the peak-to-peak noise.

A task 506, which occurs after task 504, compares the noise value to low and high noise buzzer threshold variables. These threshold variables are established in accordance with the procedure discussed below in connection with macro 940. Generally speaking, the low noise buzzer threshold variable defines the noise level below which tester 10 will remain silent, and the high noise buzzer threshold variable defines the noise level above which tester 10 will emit a constant tone from buzzer 32 (see FIG. 2A). In a manner similar to that discussed above in connection with task 612 of Continuity function 600, task 506 sets an on-time parameter for the operation of buzzer 32 in accordance with the measured noise level when this noise level is between the low and high noise buzzer threshold variables. Thus, tester 10 emits "beeps" to audibly indicate the noise level measured at port 15.

This audible indication of the noise level is advantageous because a user of tester 10 may move and arrange the physical location of wires while listening to the audible indications supplied by tester 10. The user need not look at display 13 to learn the measured noise level, and the user need not interpret whether a given noise level is acceptable or unacceptable. Rather, the user need only arrange the physical location of CUT 18 so that tester 10 emits as few beeps as possible.

After task 506, a task 508 inquires whether to end Noise Level function 500. As discussed above, the end of the function occurs in the preferred embodiment when the user presses any key. When task 508 detects the end-of-function event, program control returns to Idle mode 82. However, until task 508 detects the end-of-function event, program control remains within Noise Level function 500 by transferring from task 508 back to task 502.

FIG. 12 presents a flow chart which illustrates the types of tasks performed by tester 10 during Printer function 700. Generally, during Printer function 700 tester 10 monitors serial port 19 (see FIGS. 1-2A) to perform baud rate or XON/XOFF testing of an RS-232 communications link with a computer device coupled to tester 10 at serial port 19. As shown in FIG. 12, a task 702 causes display 13 to instruct the user to press a key on keypad 12 (see FIG. 1) and thereby select whether to perform baud rate testing or XON/XOFF testing. The instructions may, for example, instruct the user to press key 1 for baud rate testing or key 2 for XON/XOFF testing. Task 702 waits for the user's response, then transfers program control to a task 704 if baud rate testing has been indicated or to a task 706 if XON/XOFF testing has been indicated. Tasks 704 and 706 both cause display 13 to instruct the user to send any file of data toward tester 10 at serial port 19. Thus, after tasks 704 and 706, serial port 19 should be receiving data.

After task 704, microprocessor 24 (see FIG. 2A) sets receive data parameters, such as baud rate, stop bits, and parity, for UART 25 in a task 708. After task 708, a task 710 causes microprocessor 24 to inquire whether UART 25 has detected any errors in received data. If errors have been detected, then the proper parameters have not been set in UART 25, and tasks 708 and 710 are repeated until task 710 fails to detect the occurrence of errors. Of course, each iteration of task 708 sets a different receive data parameter for UART 25. Consequently, all possible receive data parameters for UART 25 will eventually be attempted unless no errors are detected by task 710. When task 710 detects no received data errors at UART 25, program control proceeds to a task 712.

After task 706, microprocessor 24 allows UART 25 to receive approximately 80 characters, as indicated in a task 714. Next, in a task 716, microprocessor 24 causes UART 25 to transmit an ASCII XOFF character at serial port 19. Following task 716, a task 718 counts the additional characters received by UART 25 through serial port 19 after the transmission of the XOFF character, and then program control proceeds to task 712.

Task 712 displays the results of the prior serial port testing at display 13. When baud rate testing has been conducted, display 13 indicates the discovered baud rate. When XON/XOFF testing has been conducted, display 13 indicates the number of additional characters received after transmission of the XOFF character. This number should be around 3 or less if the computer device coupled to serial port 19 has the XON/XOFF protocol correctly installed.

After task 712, a task 720 inquires whether to exit Printer function 700. In the preferred embodiment, an exit from Printer function 700 occurs after a user of tester 10 presses any key. Upon exiting Printer function 700, program control returns to Idle mode 82. However, when an end-of-function event has not yet been detected in task 720, task 720 simply loops back on itself so that the test results will remain on display 13.

FIG. 13 presents a flow chart which illustrates the types of tasks performed by tester 10 during Data Library function 800. Generally, during Data Library function 800 the contents of the workspace may be either saved in a dedicated portion of RAM 34 (see FIG. 2A) or updated with data previously saved in this dedicated portion of RAM 34. Data Library function 800 operates in conjunction with Print function 200, discussed above in connection with FIG. 8. As discussed above, Print function 200 causes the contents of the workspace to be printed at serial port 19 (see FIGS. 1-2). Thus, a test run whose results are contained in the workspace may be stored in a data library so that the test run may be printed at a later time. In the meantime, additional test runs may be performed or tester 10 may be powered-down and transported to a location where a printer or other computer device is located.

With reference to FIG. 13, a task 802 causes display 13 to instruct the user to press a key on keypad 12 (see FIG. 1) and thereby select whether to store the workspace into a data library or to retrieve a data library into the workspace. The instructions may, for example, instruct the user to press key 1 to save the workspace or key 2 to retrieve a data library into the workspace. Task 802 waits for the user's response, then transfers program control to a task 804 to examine the entered key. If the user has selected to save the workspace, then program control transfers to a task 806. If the user has selected to retrieve a data library into the workspace, then program control transfers to a task 808. Tasks 806 and 808 both cause display 13 to instruct the user to press the key corresponding to the number of a data library selected for use in connection with Data Library function 800. Then, tasks 806 and 808 each wait until the user has entered a selection. The preferred embodiment of the present invention reserves nine segments of RAM 34 for use as data libraries. Consequently, the user is requested to press one of keys 12.1-12.9 (see FIG. 1) to indicate a single, unique data library.

After task 806, tester 10 transfers data from the workspace into the indicated portion of RAM 34 in a task 810. Conversely, after task 808 tester 10 transfers data from the indicated portion of RAM 34 to the workspace in a task 812. After either of tasks 810 and 812, program control returns to Idle mode 82.

FIG. 14 presents a flow chart which illustrates the types of tasks performed by tester 10 during Calibration function 1000. During Calibration function 1000, the user of tester 10 enters data which describe an NVP parameter. Calibration function 1000 permits such data to be entered in two different forms. In one form tester 10 calculates the NVP parameter from a sample cable of known length. In another form, tester 10 receives a number which it regards as the NVP from keypad 12 (see FIG. 1).

As shown in FIG. 14, a task 1002 causes display 13 to instruct the user to press a key on keypad 12 and thereby select whether to calculate an NVP using scan results from a sample cable or to accept an NVP directly from keypad 12. The instructions may, for example, instruct the user to press keys 12.1-12.9 (see FIG. 1) to obtain the NVP from a sample cable or key 12.0 to accept the NVP directly from keypad 12. If the user enters one of keys 12.1-12.9, then such an entry is additionally interpreted as indicating the one of user types 1-9, discussed above in connection with task 89 of FIG. 4, in which to store the NVP. Task 1002 waits for the user's response, then transfers program control to a task 1004 to examine the entered key. If the user has decided to obtain the NVP from a sample cable, then program control transfers to a task 1006. If the user has decided to directly enter the NVP on keyboard 12, then program control transfers to a task 1008.

Tasks 1006 and 1008 both cause display 13 to instruct the user to enter a number, and both of tasks 1006 and 1008 wait until the number has been completely entered. Specifically, task 1006 instructs the user to enter a number corresponding to the length of the sample cable from which the NVP will be calculated. Typically, this cable length should be as long as possible to obtain accurate results, and preferably at least 50 feet long. The sample cable is to be attached at one end thereof to port 15 (see FIGS. 1-2A) of tester 10, and the opposing end of the sample cable remains either open or shorted. Moreover, task 1006 interprets the units associated with the entered number as being either feet or meters in accordance with the state of the units variable, which is set in macro 950, discussed below.

After task 1006, a task 1010 sets a baseline amplitude for use in a subsequent TDR scan of the sample cable. Task 1010 is similar to task 120, discussed above in connection with Scan Cable function 100 (see FIG. 5A). However, since the sample cable is typically not used in an operational LAN, a constant, predetermined amplitude may be used for the baseline amplitude rather than establishing the baseline amplitude with reference to amplitude measurements of signals currently present at port 15 (see FIGS. 1-2A).

After task 1010, a task 1012 performs a TDR scan of the sample cable. The scan conducted in task 1012 is similar to the scans discussed above in connection with Scan Cable function 100. Thus, task 1012 produces a scan result which represents a count from counter 77 (see FIG. 2B), and this count describes the time required for an incident pulse to reflect at the end of the sample cable which opposes tester 10 and propagate back to tester 10 as a reflected pulse.

Next, a task 1014 converts the scan results into the NVP using a formula similar to the following:

    NVP=2*L/T*C                                                Eq. 1

where:

L is the length of the sample cable;

T is the time measured in the TDR scan; and

C is the speed of light.

After the NVP has been calculated by task 1014, a task 1016 updates the workspace and the user type indicated above in tasks 1002-1004 with this newly calculated NVP. In addition, in task 1016 tester 10 displays this NVP at display 13. Next, a task 1018 inquires whether to end Calibration function 1000. As discussed above in connection with other functions, the preferred embodiment terminates Calibration function 1000 when the user presses any key on keyboard 12. The termination of Calibration function 1000 causes program control to proceed back to Idle mode 82. However, as long as the user does not press a key on keyboard 12, task 1018 loops back on itself so that the data shown on display 13 will remain displayed.

Referring back to task 1008, which tester 10 utilizes when a user wishes to directly enter an NVP, program control remains in task 1008 until the user enters a two-digit number on keyboard 12. After this event occurs, a task 1020 examines the entered data to see if it is within reasonable limits for an NVP. Specifically, task 1020 inquires whether this data is within the range of 50-99. If the entered data is out of range, program control loops back to task 1008 so that a valid number may be entered. In addition, tester 10 may advantageously emit a "beep" so that the user is audibly informed that the previously entered data is out-of-range. On the other hand, if task 1020 determines that the entered data is within range, then such data is interpreted as a percentage, and program control proceeds to task 1016, discussed above.

As discussed above in connection with FIG. 4, Macro function 900 is one of the functions performed by tester 10. Furthermore, Macro function 900 generally represents a software switch which routes program control to a specified macro. FIG. 15 presents a flow chart which illustrates the types of tasks performed by tester 10 during Tracer macro 910. Generally, Tracer macro 910 supplies an audio signal to CUT 18 as an aid in detecting the precise location of CUT 18. When CUT 18 is installed in a building or other location as part of a LAN, CUT 18 typically resides within walls, above ceilings, under carpets, and the like. Thus, locating CUT 18 becomes a significant problem when the user troubleshoots CUT 18. Tracer macro 910 operates in conjunction with a tracer device 1100, which is described below in connection with FIG. 16.

As shown in FIG. 15, a task 911 sets the first and second relay control bits presented to cable interface 23 (see FIG. 2B) on lines 69 and 70 so that relay 55 couples audio signal driver 60 to signal terminal 58 of port 15 and so that reference terminal 72 of port 15 is open. Next, tester 10 enters a tracer loop at a task 912, which toggles the ready/audio control bit presented at line 59 (see FIG. 2B) In other words, if the ready/audio control bit is initially high, task 912 simply sets it low, and vice-versa. This change in the state of the ready/audio control bit is transmitted to CUT 18 at port 15.

After task 912, a task 913 inquires whether a tone mode of operation should be changed at the then-current time. Tracer macro 910 supplies the audio signal as a tone which alternates between a high frequency and a low frequency at a predetermined rate. The user of tester 10 listens for the audio signal with tracer device 1100. Thus, the use of the alternating tones makes the audio signal distinctive and easily identified by the user. Accordingly, task 913 inquires whether to change between high and low frequency tone modes of operation. If task 913 decides to change tone modes, program control proceeds through a task 914 to a task 915. However if task 913 decides not to change tone modes, program control proceeds directly to task 915.

Task 914 toggles a tone mode variable from high to low or vice-versa. In task 915, tester 10 waits a predetermined period of time. The preferred embodiment of the present invention supplies an approximately 6000 Hz high frequency audio signal and an approximately 3000 Hz low frequency audio signal. Thus, the 6000 Hz signal cycles through positive and negative polarities of the signal in approximately 167 microseconds and cycles through only one of the positive and negative polarities in approximately 83 microseconds. The wait imposed by task 915 is a little less than approximately one-half of a cycle for the high frequency signal, or a little less than approximately 83 microseconds in the preferred embodiment.

After task 915, a task 916 examines the tone mode variable to determine if tester 10 is then-currently operating in the high or low frequency mode. If task 916 detects operation in the high frequency mode, then the ready/audio control bit needs to be toggled again, and program control proceeds to a task 917. On the other hand, if task 916 detects current operation in the low frequency mode, then tester 10 must wait an additional period of time before toggling the ready/audio control bit, and program control proceeds to a task 918.

Task 918 imposes another wait in the tracer loop. Since the frequency of the low frequency signal in the preferred embodiment is approximately one-half that of the high frequency signal, the wait imposed by task 918 is approximately the same as the wait imposed by task 915, discussed above. After task 918 causes tester 10 to wait the allotted period of time, the ready/audio control bit needs to be toggled again for the low frequency mode of operation, and program control proceeds to task 917.

Task 917 inquires whether to exit Tracer macro 910 before routing program control back to task 912. Tracer macro 910 ends when a user presses any key on keyboard 12 (See FIG. 1). When this ending event occurs, a task 919 returns the relay control bits to their initial states, which prepare tester 10 for Scan Cable function 100 (see FIGS. 5A-5B).

FIG. 16 shows a block diagram of tracer device 1100, which the user of tester 10 utilizes with Tracer macro 910 to locate CUT 18. Specifically, FIG. 16 shows a high-gain amplifier 1102 having a signal input coupled to an antenna 1104. In the preferred embodiment, antenna 1104 is formed from a wire which is between a few inches and a couple of feet in length. An output of amplifier 1102 couples to an input of a speaker 1110. A power input to amplifier 1102 couples through a switch 1106 to a first output of a battery 1108. A second output of battery 1108 and a ground terminal of amplifier 1102 couple together.

In the preferred embodiment, switch 1106 is spring biased to remain in an open configuration unless specifically depressed. Thus, a user of tracer device 1100 must continually depress switch 1106 in order for amplifier 1102 to be energized and for tracer device 1100 to operate. As a result, tracer device 1100 cannot inadvertently be left energized, and the life of battery 1108 is extended.

While tester 10 performs Tracer macro 910, reference terminal 72 of port 15 is open (see FIG. 2B), causing a shield or reference conductor of CUT 18 to become ungrounded. Consequently, CUT 18 operates as an antenna which radiates a portion of the energy contained in the audio signal feed into CUT 18. This radiated energy inductively couples into antenna 1104 of tracer device 1100 when tracer device 1100 is moved within a few feet of CUT 18. The audio signal is amplified in amplifier 1102 and presented at speaker 1110 so that it may be heard by the user. Accordingly, CUT 18 may be found within walls, above ceilings, under carpets, and the like, by moving tracer device 1100 near such fixtures and listening for the audio signal. This audio signal becomes louder as tracer device 1100 moves nearer to CUT 18.

FIG. 17 presents a flow chart which illustrates the types of tasks performed by tester 10 during Monitor macro 920. Generally, Monitor macro 920 operates while a LAN network of which CUT 18 is a part carries data traffic. Monitor macro 920 measures the data activity on CUT 18 without instigating activity of its own. Moreover, Monitor macro 920 processes and presents the activity data to the user of tester 10.

As shown in FIG. 17, a task 921 causes display 13 to instruct the user to enter a number which will be interpreted as a time of day. Task 921 then waits until the user enters a number and initializes an internal clock using the entered number. After task 921, a task 922 writes a threshold value to D/A converter 67 (see FIG. 2B). This threshold value causes D/A converter 67 to generate a comparison amplitude which comparator 65 utilizes in monitoring network activity. In the preferred embodiment, this comparison amplitude is around -0.5 volts.

Next, a task 923 continually polls the outputs from comparator 65 which couple to controller interface 44 (see FIG. 2B). This continued polling operation persists for around 200 milliseconds, and task 923 counts the number of transitions observed in the outputs of comparator 65 during task 923. A transition occurs each time the amplitude of the signals monitored at port 15 cross over the threshold amplitude set above in task 922.

After task 923, a task 924 inquires whether a one-second point in time has occurred. If this one-second point has not yet occurred, then Monitor macro 920 need not update display information, and program control proceeds directly to a task 925. Task 925 inquires whether to end Monitor macro 920, and loops program control back to task 923 until it determines that Monitor macro 920 should end. On the other hand, if task 924 determines that the one-second point has been reached, a task 926 processes activity data obtained in previous iterations of task 923 for presentation to the user.

Specifically, task 926 averages the count data from several of the prior iterations of task 923 to obtain an average activity number. In the preferred embodiment, this average encompasses the prior 15 iterations of task 923. Task 926 translates this number into a second number which is logarithmicly related to the average number of transitions and displays the second number at display 13 along with a legend, which identifies the second number as representing a one-second average.

In addition, task 926 translates this second number into parameters which control a bar graph and causes display 13 to display the resulting bar graph. In the preferred embodiment of the present invention, the bar graph produced in Monitor macro 920 is a single character bar graph in which the number of lines in the single character increases as the value of the second number increases. Thus, a short vertical bar appears at display 13 when tester 10 detects only a little network activity at port 15, and a tall vertical bar appears when tester 10 detects a substantial amount of network activity.

After task 926, a task 927 inquires whether a one-minute point in time has occurred. If this one-minute point has not yet occurred, Monitor macro 920 need not update additional display information, and program control proceeds to a task 925. However, if task 927 determines that a one-minute point has been reached, then a task 928 processes the one-second data accumulated over the previous minute to produce one-minute data. Specifically, task 928 averages the one-second numbers displayed above in task 926 for the previous minute to produce an average of network activity over the previous minute. Then, task 928 formats and displays this one-minute average with an appropriate legend identifying it as such.

In addition, task 928 formats the one-minute data for output at serial port 19 (See FIGS. 1-2A) so that it may be printed or saved at an external computer device. A current value form the clock, initialized above in task 921, is also output to identify the time of day to which the output activity report applies. Moreover, in the preferred embodiment, the one-minute data is formatted as a bar graph so that once each minute serial port 19 outputs a single line of data that includes the time of day and a bar which graphically indicates network activity over the preceding minute.

After task 928, program control proceeds to task 925, which inquires whether to end Monitor macro 920. Monitor macro 920 ends when task 925 determines that a key on keyboard 12 (see FIG. 1) has been pressed. When task 925 makes the determination to end Monitor macro 920, program control returns to Idle mode 82.

FIG. 18 presents a flow chart which illustrates the types of tasks performed by tester 10 during Amplitude Display macro 930. As shown in FIG. 18, a task 932 simply toggles the amplitude display variable, then program control proceeds to Idle mode 82. As discussed above in connection with tasks 180-184 of Scan Cable function 100 (see FIG. 5B), tester 10 uses the amplitude display variable to enable and disable the bar graph display which describes the amplitude of reflected pulses during Scan Cable function 100. Thus, tester 10 performs Amplitude Display macro 930 to enable a disabled bar graph, and vice-versa.

FIG. 19 presents a flow chart which illustrates the types of tasks performed by tester 10 during Noise Level macro 940. As shown in FIG. 19, a task 942 causes display 13 to instruct the user to enter a number which identifies a low noise buzzer threshold, and task 942 waits until this number has been completely entered. Next, a task 944 causes display 13 to instruct the user to enter a number which identifies a high noise buzzer threshold, and task 944 waits until this number has been completely entered. Noise Level macro 940 interprets the numbers entered in tasks 942 and 944 as representing millivolts, and the low and high noise buzzer threshold variables are set accordingly. As discussed above in connection with task 506 of Noise Level function 500 (see FIG. 11), the low and high noise threshold variables specify the operation of the audible "beeps" emitted by tester 10 during function 500. Thus, the user of tester 10 utilizes Noise Level macro 940 to set the noise level below which tester 10 remains silent during function 500 and to set the noise level above which tester 10 emits a continuous tone during function 500. After task 944, program control returns to Idle mode 82.

FIG. 20 presents a flow chart which illustrates the types of tasks performed by tester 10 during Units macro 950. As shown in FIG. 20, a task 952 toggles the units variable, then program control proceeds to Idle mode 82. As discussed above in connection with task 138 of Scan Cable function 100 (see FIG. 5B) and task 1006 of Calibration function 1000 (see FIG. 14), tester 10 uses the units variable to determine whether tester 10 operates with distances expressed in feet or in meters. Thus, tester 10 performs Units macro 950 to switch between operating modes in which distances are expressed as feet or meters.

FIG. 21 presents a flow chart which illustrates the types of tasks performed by tester 10 during Print Configuration macro 960. As shown in FIG. 21, a task 962 formats current default values used by tester 10 for printing and outputs such default values at serial port 19 (see FIGS. 1-2A). After task 962, program control proceeds to Idle mode 82. These default values include data describing NVP numbers stored in various user types, the amplitude display variable, low and high noise buzzer thresholds variables, the units variable, the preset macro variable, and the like. Thus, Print configuration macro 960 allows a user of tester 10 to make a record of the internal configuration of tester 10.

FIG. 22 presents a flow chart which illustrates the types of tasks performed by tester 10 during Define Macro Preset macro 970. As shown in FIG. 22, a task 972 causes display 13 (see FIGS. 1-2A) to instruct the user to press one of keys 12.1-12.9 (see FIG. 1) on keypad 12 and thereby select a macro to utilize in connection with the selected macro feature of tester 10, which was discussed above in connection with tasks 90-92 of FIG. 4. After a numbered key on keypad 12 has been pressed, a task 974 saves this number or a corresponding identifier in the macro variable, discussed above in connection with tasks 90-92. After task 974, program control returns to Idle mode 82.

In summary, the present invention provides a cable testing apparatus and method which are particularly suited for use by a typical LAN user and need not be used only by LAN-skilled persons. The tester of the present invention provides a time domain reflectometer which may be used without a user specifying incident pulse width or cable impedance parameters. In addition, the TDR features of the present invention perform a scan of a cable under test quickly after detecting the then-current dynamic state of signals present on the cable so that a LAN may remain energized during TDR testing. Furthermore, the present invention provides modes of operation which indicate test results using graphical and audible forms of communicating information so that the usability of the tester improves and so that a user of the tester is required to engage in only a minimal amount of data interpretation. Moreover, the present invention includes a multiplicity of test functions in a single device so that a user need not obtain additional "test" equipment to successfully troubleshoot a wide variety of common LAN problems.

The present invention has been described above with reference to a preferred embodiment. However, those skilled in the art will recognize that changes and modifications may be made in this preferred embodiment without departing from the scope of the present invention. For example, those skilled in the art can devise a wide variety of specific hardware implementations for the structures depicted by FIGS. 1-3 and 16. Clearly, the specific devices, logic elements, and signal polarities discussed herein are subject to modification. Likewise, those skilled in the art will recognize that the software programming depicted by the flow charts of FIGS. 4-15 and 17-22 may differ considerably without departing from the scope of the present invention and may include more or fewer features and exhibit a markedly different internal organization. Moreover, those skilled in the art will recognize that these flow charts are presented to teach the present invention and that these flow charts, like any flow chart describing complicated software, can only approximate the actual software utilized. In order to understand actual implementations of the software in the preferred embodiment, the reader is referred to the "C" programming source listing contained in the Appendix attached hereto. These and other changes and modifications which are obvious to those skilled in the art are intended to be included within the scope of the present invention.

APPENDIX COPYRIGHT INFORMATION

ALL SOFTWARE PROGRAMMING DISCLOSED IN THIS PATENT DOCUMENT, INCLUDING, BUT NOT LIMITED TO, PROGRAMMING THAT APPEARS IN THE FOLLOWING APPENDIX, IS COPYRIGHTED TO MICROTEST, INC. MICROTEST, INC. HEREBY CONSENTS TO THE REPRODUCTION OF THE COPYRIGHTED SOFTWARE DISCLOSED IN THIS PATENT DOCUMENT, BUT ONLY SO FAR AS SUCH REPRODUCTION IS UNDERTAKEN SOLELY AS NECESSARY IN CONJUNCTION WITH THE REPRODUCTION OF AN ISSUED PATENT WITH WHICH THE COPYRIGHTED SOFTWARE IS ASSOCIATED. MICROTEST, INC. RESERVES EXCLUSIVELY UNTO ITSELF THE RIGHT TO USE THE COPYRIGHTED SOFTWARE FOR ALL OTHER PURPOSES, INCLUDING, BUT NOT LIMITED TO, THE PURPOSES DISCLOSED OR SUGGESTED BY THIS PATENT DOCUMENT AND INCLUDING

THE CREATION OF DERIVATIVE WORKS.

COPYRIGHT ©1989 MICROTEST, INC. 

What is claimed is:
 1. A cable testing apparatus comprising:a port for coupling to a cable under test; a time domain reflectometer (TDR) coupled to said port, said TDR being configured to transmit a series of incident signal pulses of selectable width through said port and to monitor signals at said port; and a controller coupled to said TDR, said controller comprising:means for monitoring a quiescent amplitude at said port, said quiescent amplitude occurring when said signals monitored at said port are substantially uninfluenced by said incident signal pulses, means for monitoring elapsed time from transmission of one of said incident signal pulses until said monitored signals exceed a baseline amplitude, said baseline amplitude being responsive to said quiescent amplitude, and means for increasing said selectable width of said incident signal pulse when said elapsed time exceeds a predetermined duration.
 2. A cable testing apparatus as claimed in claim 1 additionally comprising:means, coupled to said port, for measuring conductance at said port; and means, coupled to said measuring means, for graphically displaying conductance measured at said port.
 3. A cable testing apparatus as claimed in claim 1 additionally comprising:means, coupled to said port, for measuring conductance at said port; and means, coupled to said measuring means, for audibly indicating conductance measured at said port.
 4. A cable testing apparatus as claimed in claim 1 additionally comprising:means, coupled to said TDR, for measuring amplitudes of said signals at said port; and means, coupled to said measuring means, for audibly indicating said amplitudes measured by said measuring means.
 5. A cable testing apparatus as claimed in claim 4 additionally comprising means, coupled to said audibly indicting means, for initiating an action to specify a first amplitude threshold below which said signals measured by said measuring means cause said audibly indicating means to remain silent, and a second amplitude threshold above which said signals measured by said measuring means cause said audibly indicating means to emit a constant tone.
 6. A cable testing apparatus as claimed in claim 1 additionally comprising:display means, coupled to said TDR, for indicating TDR measurements; and memory means, coupled to said TDR, for storing multiple TDR measurements for subsequent recall and display at said display means.
 7. A cable testing apparatus comprising:a port for coupling to a cable under test; a time domain reflectometer (TDR) coupled to said port, said TDR being configured to transmit an incident signal pulse of selectable width through said port and to monitor signals at said port; means, coupled to said TDR, for automatically specifying a width for said incident signal pulse in response to said signals monitored at said port; and means, coupled to said port, for transmitting an audio frequency electrical signal at said port.
 8. A cable testing apparatus as claimed in claim 7 wherein said port includes a signal conductor and a reference conductor, and said apparatus additionally comprises:a terminal adapted to receive a common potential; and a switch, coupled between said terminal and said reference conductor of said port, said switch being configured to electrically connect said terminal to said reference conductor when said audio frequency electrical signal is not being transmitted at said port.
 9. A cable testing apparatus as claimed in claim 1 additionally comprising means, coupled to said TDR, for transmitting test measurements to an external device for storage or display of said test measurements at said external device.
 10. A cable testing apparatus as claimed in claim 1 additionally comprising means, coupled to said TDR, for measuring baud rate of data received serially at said apparatus.
 11. A cable testing apparatus as claimed in claim 1 wherein said cable under test exhibits a characteristic impedance, and said TDR comprises a cable driver having an output coupled to said port, said cable driver output presenting an impedance greater than said characteristic impedance.
 12. A cable testing apparatus as claimed in claim 1 wherein said TDR comprises a cable driver having an output coupled to said port, said cable driver output presenting an impedance greater than 150 ohms.
 13. A cable testing apparatus as claimed in claim 1 wherein said cable under test exhibits a characteristic impedance, and said TDR comprises:a controller for initiating transmission of said incident signal pulse from said TDR and for delaying transmission of a subsequent incident signal pulse; and a cable driver having an input coupled to said controller and having an output coupled to said port, said cable driver output presenting an impedance which does not match said characteristic impedance of said cable under test, and said controller being configured to delay said subsequent incident signal pulse until reflection pulses at said port dissipate.
 14. A cable testing apparatus comprising:a port for coupling to a cable under test; a time domain reflectometer (TDR) coupled to said port, said TDR being configured to transmit an incident signal pulse of selectable width through said port and to monitor signals at said port, said TDR comprising:a controller for initiating transmission of said incident signal pulse from said TDR and for automatically specifying a width for said incident signal pulse in response to said signals monitored at said port. a pulse generator having an input coupled to said controller and having an output coupled to said port, said pulse generator generating said incident signal pulse, a counter, coupled to one of said controller and said pulse generator, said counter being configured to initiate counting substantially simultaneous with the generation of said incident signal pulse, a comparison amplitude generator having an input coupled to said controller and having an output, said comparison amplitude generator producing a comparison signal having an amplitude, a comparator, having a first input coupled to said comparison amplitude generator output, a second input coupled to said port, and an output coupled to said counter, said comparator and said counter cooperating to halt said counting when said signals monitored at said port exhibit an amplitude exceeding the amplitude of said comparison signal, and means, coupled to said counter, for ensuring that said counting is not halted within a predetermined duration subsequent to the initiation of said counting.
 15. A cable testing apparatus comprising:a port for coupling to a cable under test; a time domain reflectometer (TDR) coupled to said port, said TDR being configured to transmit an incident signal pulse of selectable width through said port and to monitor signals at said port, said TDR comprising:a controller for initiating transmission of said incident signal pulse from said TDR and for automatically specifying a width for said incident signal pulse in response to said signals monitored at said port, a pulse generator having an input coupled to said controller and having an output coupled to said port, said pulse generator generating said incident signal pulse, a counter, coupled to one of said controller and said pulse generator, said counter being configured to operate in a first mode wherein counting is initiated substantially simultaneous with the generation of said incident signal pulse at said port and a second mode wherein counting is initiated without the generation of said incident signal pulse at said port, a comparison amplitude generator having an input coupled to said controller and having an output, said comparison amplitude generator producing a comparison signal having an amplitude, and a comparator, having a first input coupled to said comparison amplitude generator output, a second input coupled to said port, and an output coupled to said counter, said comparator and said counter cooperating to halt said counting when said signals monitored at said port exhibit an amplitude exceeding the amplitude of said comparison signal.
 16. A cable testing apparatus comprising:a port for coupling to a cable under test; a time domain reflectometer (TDR) coupled to said port, said TDR being configured to transmit an incident signal pulse of selectable width through said port and to monitor signals at said port, and said TDR including a controller for initiating transmission of said incident signal pulse; means, coupled to said TDR, for automatically specifying a width for said incident signal pulse in response to said signals monitored at said port; means for measuring resistance at said port, said measuring means having an output and having an input coupled to said port; a comparison amplitude generator having an input coupled to said controller and having an output; a comparator having a first input coupled to said comparison amplitude generator output, a second input, and an output coupled to said controller; and a switch, coupled to said port, said measuring means output, said comparator second input, and said controller, said switch selectively coupling one of said port and said measuring means output to said comparator second input.
 17. An apparatus for testing a cable exhibiting a predetermined characteristic impedance, said apparatus comprising:a time domain reflectometer (TDR) having, coupled to said cable, an output exhibiting an impedance which substantially differs from said predetermined characteristic impedance, said TDR being configured to transmit an incident signal pulse into said cable and to receive a signal from said cable; said TDR having, coupled to said output, means for measuring elapsed time between said incident signal pulse and said received signal; and said TDR having, coupled to said measuring means, measurable by said measuring means so that ringing caused by impedance differences may substantially dissipate.
 18. A cable testing apparatus as claimed in claim 17 additionally comprising:means, coupled to said cable, for measuring conductance of said cable; and means, coupled to said conductance measuring means, for graphically displaying conductance.
 19. A cable testing apparatus as claimed in claim 17 additionally comprising:means, coupled to said cable, for measuring conductance at said cable; and means, coupled to said conductance measuring means, for audibly indicating conductance.
 20. A cable testing apparatus as claimed in claim 17 additionally comprising:means, coupled to said TDR, for measuring amplitudes of said signals at said port; and means, coupled to said amplitude measuring means, for audibly indicating said amplitudes measured by said measuring means.
 21. A cable testing apparatus as claimed in claim 20 additionally comprising means, coupled to said audibly indicating means, for initiating an action to specify a first amplitude threshold below which said signals measured by said amplitude measuring means cause said audibly indicating means to remain silent, and a second amplitude threshold above which said signals measured by said amplitude measuring means cause said audibly indicating means to emit a constant tone.
 22. A cable testing apparatus as claimed in claim 17 additionally comprising:display means, coupled to said TDR, for indicating TDR measurements; and memory means, coupled to said TDR, for storing multiple TDR measurements for subsequent recall and display at said display means.
 23. A cable testing apparatus as claimed in claim 17 additionally comprising means, coupled to said cable, for transmitting an audio frequency electrical signal into said cable.
 24. A cable testing apparatus as claimed in claim 23 wherein said cable includes a signal conductor and a reference conductor, and said apparatus additionally comprises:a terminal adapted to receive a common potential; and a switch, coupled between said terminal and said reference conductor of said cable, said switch being configured to electrically couple said reference conductor to said terminal when said audio frequency electrical signal is not being transmitted at said port.
 25. A cable testing apparatus as claimed in claim 17 additionally comprising means, coupled to said TDR, for transmitting test measurements to an external device for storage or display of said test measurements at said external device.
 26. A cable testing apparatus as claimed in claim 17 wherein said TDR comprises:a controller for initiating transmission of said incident signal pulse from said TDR; a cable driver having an input coupled to said controller and having an output coupled to said cable, said cable driver producing said incident signal pulse; a comparison amplitude generator having an input coupled to said controller and having an output, said comparison amplitude generator producing a comparison signal having an amplitude; a comparator, having a first input coupled to said comparison amplitude generator output, a second input coupled to said cable, and an output coupled to said elapsed time measuring means, said comparator and said elapsed time measuring means cooperating to determine when said received signal monitored at said cable exhibits an amplitude exceeding the amplitude of said comparison signal; and means, coupled to said establishing means, for ensuring that said elapsed time measuring means does not stop measuring time within a predetermined duration subsequent to the initiation of said incident signal pulse.
 27. A cable testing apparatus as claimed in claim 17 wherein said elapsed time measuring means includes a counter, and said establishing means is configured to control said counter so that said counter operates in a first mode wherein counting is initiated substantially simultaneous with the generation of said incident signal pulse and a second mode wherein counting is initiated without the generation of said incident signal pulse, and said TDR comprises:a controller for initiating transmission of said incident signal pulse from said TDR; a cable driver having an input coupled to said controller and having an output coupled to said cable, said cable driver generating said incident signal pulse; a comparison amplitude generator having an input coupled to said controller and having an output, said comparison amplitude generator producing a comparison signal having an amplitude; and a comparator, having a first input coupled to said comparison amplitude generator output, a second input coupled to said cable, and an output coupled to said counter, said comparator and said counter cooperating to halt said counting when said received signal monitored at said cable exhibits an amplitude exceeding the amplitude of said comparison signal.
 28. A cable testing apparatus as claimed in claim 17 wherein said TDR comprises a controller for initiating transmission of said incident signal pulse, and said apparatus additionally comprises:means for measuring resistance of said cable, said measuring means having an output and having an input coupled to said cable; a comparison amplitude generator having an input coupled to said controller and having an output; a comparator having a first input coupled to said comparison amplitude generator output, a second input, and an output coupled to said controller; and a switch, coupled to said cable, said resistance measuring means output, said comparator second input, and said controller, said switch selectively coupling one of said cable and said resistance measuring means output to said comparator second input.
 29. A cable testing apparatus as claimed in claim 17 wherein said output impedance of said TDR is greater than 150 ohms.
 30. A cable testing apparatus as claimed in claim 17 wherein said TDR comprises:a controller for initiating transmission of said incident signal pulse from said TDR and for delaying transmission of a subsequent incident signal pulse until reflection pulses at said port dissipate.
 31. A cable testing apparatus having a port for coupling to a cable under test, said apparatus comprising:a controller for initiating transmission of an incident signal pulse from said port; a pulse generator having an input coupled to said controller and having an output coupled to said port, said pulse generator generating said incident signal pulse; a counter, coupled to one of said controller and said pulse generator, said counter being configured to operate in a first mode wherein counting is initiated substantially simultaneous with the generation of said incident signal pulse at said port and a second mode wherein counting is initiated without the generation of said incident signal pulse at said port; a comparison amplitude generator having an input coupled to said controller and having an output, said comparison amplitude generator producing a comparison signal having an amplitude; and a comparator, having a first input coupled to said comparison amplitude generator output, a second input coupled tos aid port, and an output coupled to said counter, said comparator and said counter cooperating to halt said counting when said signals monitored at said port exhibit an amplitude exceeding the amplitude of said comparison signal.
 32. A cable testing apparatus for performing time domain reflectometry and resistance measurements, said apparatus having a port for coupling to a cable under test, and said apparatus comprising:a controller for initiating transmission of an incident signal pulse from said port; means for measuring resistance at said port, said measuring means having an output and having an input coupled to said port; a comparison amplitude generator having an input coupled to said controller and having an output; a comparator having a first input coupled to said comparison amplitude generator output, a second input, and an output coupled to said controller; and a switch, coupled to said port, said measuring means output, said comparator second input, and said controller, said switch selectively coupling one of said port and said measuring means output to said comparator second input in response to signals received from said controller.
 33. A cable testing apparatus comprising:a port for coupling to a cable under test; a controller; means for measuring resistance at said port, said measuring means having an output and having an input coupled to said port; a time domain reflectometer (TDR) having an output coupled to said port, said TDR output being configured to present an impedance greater than 150 ohms to said cable under test, said TDR being configured to transmit an incident signal pulse of selectable width through said port and to monitor signals at said port, and said TDR comprising:a comparison amplitude generator having an input coupled to said controller and having an output, a comparator, having a first input coupled to said comparison amplitude generator output, a second input, and an output coupled to said controller, and a switch, coupled to said port, said resistance measuring means output, said comparator second input, and said controller, said switch coupling one of said port and said resistance measuring means output to said comparator second input; means, coupled to said controller, for automatically specifying a width for said incident signal pulse in response to said signals monitored at said port; means, coupled to said controller, for graphically displaying resistance measured at said port; means, coupled to said controller, for audibly indicating resistance measured at said port; means, coupled to said port, for transmitting an audio frequency electrical signal at said port; and means, coupled to said controller, for transmitting test measurements to an external computer device for storage or display of said test measurements at said external computer device.
 34. A cable testing apparatus as claimed in claim 26 wherein said TDR additionally comprises means, coupled to said ensuring means and to said controller, for varying said predetermined duration. 